#include "adc.h"

/*----------------------------
读取ADC结果
----------------------------*/
int GetADCResult(BYTE ch)
{
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
    _nop_();                        //等待4个NOP
    _nop_();
    _nop_();
    _nop_();
    while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成
		ADC_CONTR &= ~ADC_FLAG;         //Close ADC 复位ADC_FLAG

    //return ADC_RES;                 //返回ADC结果 高8位 只要高8位是可以的，低精度 =255
	  return ((int)ADC_RES<<2) | ((int)ADC_LOW2); //加上低2位精度高一些，共10位，=1024
}
/*----------------------------
初始化ADC
----------------------------*/
void InitADC()
{
    P1ASF = 0xff;                   //设置P1口为AD口
    ADC_RES = 0;                    //清除结果寄存器
	  ADC_LOW2 = 0;
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
    Delay(2);                       //ADC上电并延时
}
/*----------------------------
软件延时
----------------------------*/
void Delay(WORD n)
{
    WORD x;

    while (n--)
    {
        x = 5000;
        while (x--);
    }
}